Virtualization is the abstraction of information technology (IT) resources, such as computing or processing via servers, data storage, or networking, to mask the physical nature and boundaries of these resources from consumers of the resources. Virtualization can improve the efficiency and utilization of IT resources. For example, server virtualization enables multiple operating systems and applications to concurrently run on a single physical server, thereby centralizing administrative tasks while improving scalability and hardware utilization. Further, server virtualization enables live migration (e.g., moving a VM between servers or hosts such that the operations of the VM can continue without interruption). Storage virtualization can offer similar benefits, including live migration (e.g., transfer of data between physical storage resources while maintaining concurrent input/output (IO) access), improved utilization, and fewer points of management.
An approach for network virtualization is using encapsulation techniques, such as Virtual Extensible Local Area Network (VXLAN), Network Virtualization using Generic Routing Encapsulation (NVGRE), Network Virtualization Overlays (NVO3), or Stateless Transport Tunneling (STT), to create virtual overlays on existing physical network infrastructure. Network virtualization can also include utilizing server virtualization to virtualize network devices such as switches, routers, firewalls, and load-balancers, among other networking appliances. Using such techniques, network virtualization enables a virtualized data center or network to be implemented via physical servers with packets moving in virtual tunnels on physical networking gear that segregate the packets from other traffic on that gear. Although virtualization of a data center or network can bring many benefits, virtualization may also present new challenges, such as those relating to network performance, quality of service (QoS), and network troubleshooting.